#ifndef WIDGET_HPP
#define WIDGET_HPP

#include <QtGui/QGraphicsView>

class RuleData;
class SquareGrid;
class SquareRepresentation;
class Visualisation;

class QPointF;
class QPushButton;

class Widget : public QWidget
{
    Q_OBJECT
    
public:
    Widget( QWidget *parent = 0 );
    ~Widget();
protected:
    SquareGrid* Model;
    SquareRepresentation* Scene;
    Visualisation* View;
    RuleData* Rules;
    QPushButton* Button;
private:
    void setupGui();
private slots:
    void initMat();
    void initGrid();
    void callStep();
    void viewClickedPoint( const QPointF& pt );
};

#endif // WIDGET_HPP
